package com.lagou.module3.task1;

/**
 *
 * 编程统计字符串"ABCD123!@#$%ab"中大写字母、小写字母、数字、其它字符的个数并打 印出来
 *
 */
public class StringTest {

    public static void main(String[] args) {

        String str = new String("ABCD123!@#$%ab");
//        String str1 = new String("ABCD123!@#$%ab");
//        String str2 = "ABCD123!@#$%ab";

        System.out.println("字符串: " + str);

        // 定义计数器
        int n1 = 0; // 大写字母计数
        int n2 = 0; // 小写字母计数
        int n3 = 0; // 数字计数
        int n4 = 0; // 其他字符计数

        // 采用StringBuilder存储字符
        StringBuilder sb1 = new StringBuilder(); // 记录大写字母
        StringBuilder sb2 = new StringBuilder(); // 记录小写字母
        StringBuilder sb3 = new StringBuilder(); // 记录数字
        StringBuilder sb4 = new StringBuilder(); // 记录其他字符

        // 打印每个字符对应的ASCII
        System.out.print("打印每个字符对应的ASCII： ");
        for (char c: str.toCharArray()){
            System.out.print(c + "|" +  (byte)c + " ");
        }
        System.out.println();

        // 判断字符所属类别并打印出来
        for (byte b: str.getBytes()){
            if (b >= 65 && b <= 90){  // 大写字母
                sb1.append((char) b);
                n1++;
            }else if (b >= 97 && b <= 122){ // 小写字母
                sb2.append((char) b);
                n2++;
            }else if (b >= 48 && b <= 57){ // 数字
                sb3.append((char)b);
                n3++;
            }else {  // 其他字符
                sb4.append((char)b);
                n4++;
            }
        }

        System.out.println("大写字母字符总个数：" + n1 + ", 它们是：" + sb1);
        System.out.println("大写字母字符总个数：" + n2 + ", 它们是：" + sb2);
        System.out.println("大写字母字符总个数：" + n3 + ", 它们是：" + sb3);
        System.out.println("大写字母字符总个数：" + n4 + ", 它们是：" + sb4);






    }

}
